feat: clip overlay, reel polish, and UX improvements#35
Merged
GraysonCAdams merged 7 commits intomainfrom Mar 2, 2026
Merged
Conversation
When a clip download fails, the unique (group_id, original_url) constraint prevented re-submitting the same URL. Now both the clips API and share endpoint detect failed clips and auto-retry the download instead of returning a 409 duplicate error.
The endpoint returned minimal fields missing addedByUsername, reactions, watched status, etc. This caused a crash in ReelOverlay when rendering a single clip via "View in feed". Now returns the same shape as the feed list endpoint using parallel queries.
Previously users could add multiple different emoji reactions to the same clip. Now changing your reaction removes the old one first, matching the expected one-reaction-per-user behavior.
- Remove playback speed controls (SpeedPill, keyboard shortcuts) - Add periodic watch percent updates while viewing - Redesign music disc popout as a dropdown menu with labels - Adjust bottom positions for overlay, sidebar, and progress bar - Move ActionSidebar and MusicDisc outside overlay-content div - Add hideViewBadge prop to ReelItem for overlay use - Send watch percent before opening viewers sheet
Replace the broken "inject into feed" approach with a standalone full-screen overlay. Fixes iOS Safari crash caused by incomplete clip data when rendering via viewClipSignal. - Create ClipOverlay.svelte with back button, swipe-to-dismiss, and history management - Replace viewClipSignal with clipOverlaySignal across all callers - Remove inline caption editing from upload status flow - Add end-of-feed slide with contextual messaging - Pause background feed reels when overlay is active - Deep links and "View in feed" now open the overlay
- Move GIF picker into the content area above the comment input instead of a separate overlay - Toggle between keyboard and GIF icons on the input button - Add Escape key to dismiss GIF picker or close comments sheet - Auto-focus GIF search when picker opens - Close GIF picker when text input is focused
- Add "Share clips faster from other apps" hint link in AddVideo form and upload success screen when shortcut nudge is active - Enable GIF picker in dev mode with placeholder images - Generate dev placeholder GIFs when no GIPHY API key is configured
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ClipOverlayfor viewing single clips (back button, swipe-to-dismiss, history management)GET /api/clips/[id]now returns full FeedClip data (username, avatar, reactions, watched status, etc.)Test plan
/?clip=<id>opens the overlay/?clip=<id>&comments=trueopens overlay with comments sheetnpm run checkpasses